前言
之前,提到過Linux下目錄的一系列操作,在對目錄操作前,其實我們有必要加深一下對路徑的的一個了解作為基礎知識幫助我們快速理解和定位到具體目錄,做相應操作。平時開發中,我們對路徑的操作一般會停留在資源文件、項目打包上線等簡單的路徑訪問,但還是需要了解下這些路徑為什么這樣書寫。
我們需要知道3個知識點:特殊路徑、絕對路徑、相對路徑。
特殊路徑
在每個目錄下, 都會固定存在兩個特殊目錄, 分別是.和..的目錄。一個點代表的是當前目錄, 兩個點代表的是當前目錄的上層目錄。注意: 在Linux下所有以點開始的文件都是"隱藏文件", 對于這類文件, 只使用命令ls -l是看不到的, 必須要使用ls -la才可以看到。這兩個路徑組合在路徑字符串中,能實現對相對位置的一個訪問,也就是等會兒會提及的相對路徑。
絕對路徑
inux系統采用了目錄樹的文件組織結構, 在Linux下每個目錄或文件都可以從根目錄處開始尋找, 比如: /usr/bin目錄。這種從根目錄開始的全路徑被稱為"絕對路徑", 絕對路徑一定是以 “/” 開頭的。
如何確認當前所在的目錄, 可以使用pwd命令查看:
1 [root@jdcloud~]# cd /usr/local/
2 [root@jdcloud]# pwd
那么,/usr/local/就會作為回顯的字符串輸出到標準輸出流上,用戶就能看到。這個pwd命令平時我們可以用作動態環境變量使用在SHELL腳本中,以實現一些簡單的針對本地路徑的操作,可以組合文件。
相對路徑
相對路徑就很好理解了,不以“/”開頭的路徑,基本上就是相對路徑,但在Linux下,有需要注意的地方。一般來說,你需要訪問當前路徑下的文件,前面要加上之前說到的,特殊路徑。比如刪除當前路徑下的一個叫做 itcast.jpg 的圖片,一般操作是:
1 rm ./itcast.jpg
以./開頭來確保這是當前目錄下的文件。如果是上一級目錄,就用..,兩個.來書寫即可,這樣組合多個目錄結構,就能找到我要的文件了。在Linux還有點需要注意,可執行文件不僅要標注可執行的權限,還需要,指定特殊路徑作為前綴才能運行,比如:
1 /mongod -f db.cfg
以./開頭來執行當前目錄下的一個可執行程序。
總結
本次教程中的東西很簡單,但是非常重要,多嘗試對路徑不同的操作就能在運維工作上,事半功倍。